#ifndef INTERPRET_PRESCRIPTION_H
#define INTERPRET_PRESCRIPTION_H
#include "CodeMethod.h"
#include "InterpretClosure.h"
#include <vector>
class Argument{
   public:
      Type* type;
      string name;   
};
class InterpretPrescription{
   public:
      virtual Object* executeClosure(Image* image,Closure* closure,int argc,Object** argv);
      InterpretPrescription* addArgument(Type* type,string name);
      InterpretPrescription* addTemp(Type* type,string name);
      InterpretPrescription* add(Statement stmt);
      void print(Image* image);
   private:
       friend class InterpretClosure;
      vector<Statement> code;
      vector<Argument> args;
      vector<Argument> temps;
};
#endif
